<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // await关键词是干嘛的?
    //  - 修饰一个promise, 并且拿到promise resolve的结果
    //  - axios他的promise, 永远resolve了一个对象, 他会把后端返回的数据放在,res.data
    //  - promise 如果reject了, 那么会导致错误

    // catch捕获的错误是什么?
    //  - 如果捕获的是promise导致的错误, error对象就是 promise reject的结果
    //  - 如果捕获js原生的错误, 那么error对象就是 js自己抛出错误对象

    // throw 上抛

    // 需求: 如果是promise导致的错误, 你打印出来promise错误的信息, 如果是js导致的错误, 在浏览器能看见这个错误
    async function fn() {
      try {
        const res = await new Promise((resolve, reject) => {
          reject({
            data: {
              name: '张三',
              age: 18
            }
          })
        })

        console.log(a.a)
        console.log('---', res)
      } catch (error) {
        // 区分error是promise的error还是js的error
        if (error.data) {
          console.log(error)
        } else {
          throw error
        }
      }
    }

    fn()

  </script>
</body>

</html>